#include <xen/interface/acm_ops.h>
#include <xen/interface/hvm/params.h>
#include <xen/interface/xenoprof.h>
+#include <xen/interface/vcpu.h>
#include <asm/hypercall.h>
#include <asm/page.h>
#include <asm/uaccess.h>
xencomm_create_inline(arg),
count);
}
+
+long
+xencomm_hypercall_vcpu_op(int cmd, int cpu, void *arg)
+{
+ switch (cmd) {
+ case VCPUOP_register_runstate_memory_area:
+ xencommize_memory_reservation((xen_memory_reservation_t *)arg);
+ break;
+
+ default:
+ printk("%s: unknown vcpu op %d\n", __func__, cmd);
+ return -ENOSYS;
+ }
+
+ return xencomm_arch_hypercall_vcpu_op(cmd, cpu,
+ xencomm_create_inline(arg));
+}
return _hypercall2(unsigned long, hvm_op, cmd, arg);
}
+static inline long
+xencomm_arch_hypercall_vcpu_op(int cmd, int cpu, void *arg)
+{
+ return _hypercall3(long, vcpu_op, cmd, cpu, arg);
+}
+
static inline int
HYPERVISOR_physdev_op(int cmd, void *arg)
{
#endif
#define HYPERVISOR_suspend xencomm_hypercall_suspend
+#define HYPERVISOR_vcpu_op xencomm_hypercall_vcpu_op
#endif /* __HYPERCALL_H__ */
extern int xencomm_hypercall_perfmon_op(unsigned long cmd, void* arg,
unsigned long count);
+extern long xencomm_hypercall_vcpu_op(int cmd, int cpu, void *arg);
+
/* Using mini xencomm. */
extern int xencomm_mini_hypercall_console_io(int cmd, int count, char *str);